Alustuseks loen sisse kõik paketid ja andmed, mida kasutama hakkan.
library(tidyverse)
library(dplyr)
library(stringr)
library(lubridate)
library(shiny)
library(ggpubr)
library(plotly)
filmi_andmed <- read_csv("marvel.csv")
Kuna tabelis on eraldi avamisnädalavahetuse ja ülemaailmsed tulud, siis lisasin tulba, kus need on kokku arvestatud, et kõik rahad kokku tulp ka olemas
filmi_andmed = filmi_andmed%>%mutate(All_over = Worldwide + `Opening weekend(North America)`,`Release date(United States)` = as.Date(filmi_andmed$`Release date(United States)`, "%d.%m.%Y") )
Vaatasin alustuseks mitu Marveli filmi antud stuudiod välja lasid ja kes kõige rohkem ja kes kõige vähem. Selleks tegin eraldi tabeli, mis näitab mitu korda igat stuudiot on tabelis esinenud. Kasutasin as.list käsku selleks, et vastust oleks lihtsam lugeda ning, et see oleks natuke kompaktsem.
stuudiod = filmi_andmed %>% count(`Distributor(s)`)
as.list(stuudiod[which.max(stuudiod$n),1])
## $`Distributor(s)`
## [1] "Walt Disney Studios Motion Pictures"
as.list(stuudiod[which.min(stuudiod$n),1])
## $`Distributor(s)`
## [1] "20th Century Studios"
Tegin ka sektordiagrammi kõigi stuudiotega, et näidata, palju iga üks neist filme välja lasi ning palju see kõigist Marveli filmidest moodustab
plot_ly(stuudiod, labels =stuudiod$`Distributor(s)` , values =stuudiod$n, type = 'pie',
textposition = 'none',
hoverinfo = 'text',
text = stuudiod$`Distributor(s)`)
Teen ka kolme, kõige rohkem filme välja lasknud, stuudio kohta kerged kokkuvõtted. Selleks teen kolm tabelit, iga stuudio kohta ühe.
fox_20th = filmi_andmed%>%filter(`Distributor(s)`=="20th Century Fox")%>%mutate(Profit=All_over-Budget)%>%
mutate(`Release date(United States)`=as.numeric(year(`Release date(United States)`)))
walt_disney = filmi_andmed%>%filter(`Distributor(s)`=="Walt Disney Studios Motion Pictures")%>%mutate(Profit=All_over-Budget)%>% mutate(`Release date(United States)`=as.numeric(year(`Release date(United States)`)))
sony = filmi_andmed%>%filter(`Distributor(s)`=="Sony Pictures")%>%mutate(Profit=All_over-Budget)%>% mutate(`Release date(United States)`=as.numeric(year(`Release date(United States)`)))
Teen igale ühele graafikud eelarve, kogu tulu ja kasumi kohta aastate lõikes
20th Century Fow eelarve, kogu tulu ja kasum aastate peale
Walt Disney Studios Motion Picturesi eelarve, kogu tulu ja kasum
aastate peal
Sony Pictures´i eelarve, kogu tulu ja kasum aastate peale
Tegin eraldi tabeli, kus on ainult filmi pealkiri, stuudio ja palju oli filmi eelarve. Samuti jagasin eelarve miljoniga läbi, sest kõik eelarved olid ilusad ümmargused arvud, kuid siiski kuvamiseks natuke ebaeeldivalt suured. Järjestasin tehtud tabeli ning võtsin tabeli pea ja saba:)
eelarve = filmi_andmed%>%select(Title, Budget, `Distributor(s)`)%>%mutate(Budget = Budget/1000000)%>%
rename(Budget_millions=Budget)
p1 <- head(eelarve %>% arrange(Budget_millions)) %>% ggplot(aes(x=Title, y= Budget_millions, fill = Title))+ geom_col()+
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p2 <-tail(eelarve %>% arrange(Budget_millions)) %>% ggplot(aes(x=Title, y= Budget_millions, fill = Title))+ geom_col()+
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
Vähimad ja suurimad eelarvetega filmid (millionites dollarites)
Siin vaatan eraldi kõiki juhte ehk kui palju filmid teenisid avanädalavahetusega Põhja-Ameerikas, üldiselt Põhja-Ameerika kinodes, muudes piirkondades, üle maailma kokku ning ka minu lisatud veeru kõik kokku, mis siis oli avanädalavahetuse rahad+ülemaailma rahad
Millistel filmidel oli suurim tulu avanädalavahetusel Põhja-Ameerikas? Selleks tegin eraldi tabeli, kus on filmi pealkiri ja avanädalavahetusel teenitud summa Põhja-Ameerikas ning seejärel järjestasin selle tabeli, et jällegi võtta tabeli otsad ning jagasin ka siin miljoniga, sest jällegi on arvud liiga suured, et neid täissuuruses kuvada
opening_wknd = filmi_andmed %>% select(Title, `Opening weekend(North America)`)%>%mutate(`Opening weekend(North America)`=`Opening weekend(North America)`/1000000)%>%rename(open_wknd = `Opening weekend(North America)` )
p3 <-head(opening_wknd %>% arrange(open_wknd)) %>% ggplot(aes(x=Title, y= open_wknd, fill = Title))+ geom_col()+
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p4 <-tail(opening_wknd %>% arrange(open_wknd)) %>% ggplot(aes(x=Title, y= open_wknd, fill = Title))+ geom_col()+
theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
Vähim ja suurim tulu avanädalavahetusel (millionites dollarites)
Jutt jääb samaks põhimõtteliselt.
north_America = filmi_andmed %>% select(Title, `North America`)%>%mutate(`North America`=`North America`/1000000)
p5 <-head(north_America %>% arrange(`North America`)) %>% ggplot(aes(x=Title, y= `North America`, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p6 <-tail(north_America %>% arrange(`North America`)) %>% ggplot(aes(x=Title, y= `North America`, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
Vähim ja suurim tulu Põhja-Ameerika (millionites dollarites)
muu_ala = filmi_andmed %>% select(Title, `Other territories`)%>%mutate(`Other territories`=`Other territories`/1000000)
p7 <-head(muu_ala %>% arrange(`Other territories`)) %>% ggplot(aes(x=Title, y= `Other territories`, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p8 <-tail(muu_ala %>% arrange(`Other territories`)) %>% ggplot(aes(x=Title, y= `Other territories`, fill = Title))+ geom_col()
Vähim ja suurim tulu muudel aladel (millionites dollarites)
üle_maailma = filmi_andmed %>% select(Title, Worldwide)%>% mutate(Worldwide=Worldwide/1000000)
p9 <-head(üle_maailma %>% arrange(Worldwide)) %>% ggplot(aes(x=Title, y= Worldwide, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p10 <-tail(üle_maailma %>% arrange(Worldwide)) %>% ggplot(aes(x=Title, y= Worldwide, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
Väikseim ja suurim tulu ülemaailma (millionites dollarites)
kogu = filmi_andmed %>% select(Title, All_over)%>%mutate(All_over=All_over/1000000)
p11 <-head(kogu %>% arrange(All_over)) %>% ggplot(aes(x=Title, y= All_over, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
p12 <-tail(kogu %>% arrange(All_over)) %>% ggplot(aes(x=Title, y= All_over, fill = Title))+ geom_col()+theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
Väikseim ja suurim kogu tulu
Vaataks järgmisena filmide kasumeid. Selleks, et mitte teha ainult tupldiagramme tegin seda punktidega. Koostasin uue tabeli, mis on esialgne tabel koos uue veeruga, mis näitab üldist kasumit
film1 =filmi_andmed%>%mutate(Profit= (All_over-Budget)/1000000, Budget=Budget/1000000)
Joonisel x-telg on eelarve ja y-telg on kasum. Mõlemal juhul jagasin miljoniga läbi, et oleks silmale lihtsam. Seega jällegi on mõlema telje arvud millionites dollarites.
Näeme, et kõik filmid on suhteliselt tihedalt v.a üks. Uuriks filmide eelarve ja kasumi vahelist seost, kas nad sõltuvad üksteisest.
cor(film1$Budget, film1$Profit)
## [1] -0.09130612
Korrelatsioon on negatiivne, aga joonise järgi ütleks, et kui seda ühte väärtust ei oleks, siis oleks korrelatsioon suure tõenäosusega positiivne. Seega uurime välja, mis on see ääres paiknev film.
film1$Title[which.min(film1$Profit)]
## [1] "Captain America: The Winter Soldier"
Eemaldame selle meie tabelist ja teeme korrelatsiooni testi uuesti
film2 = film1%>%slice(-(which.min(Profit)))
cor.test(film2$Budget, film2$Profit)
##
## Pearson's product-moment correlation
##
## data: film2$Budget and film2$Profit
## t = 7.7942, df = 60, p-value = 1.1e-10
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.5584670 0.8147283
## sample estimates:
## cor
## 0.7092972
Korreltasiooni testist selgub, et korrelatsioon on 0.7. Tõenäosus, et eelarve ja eelarve vahel ei ole seost on 1.1e-10 ehk 0,00000000011, seega väga väike ning 95% tõenäosusega võib nende andmete põhjal öelda, et eelarve ja kasumi vaheline korrelatsioon jääb vahemikku 0.56 - 0.81.
Alustuseks loon uue tabeli, mis on originaal tabel, mille ma järjestasin kuupäevade järgi ning lisasin ka kasumi veeru.
kuupv_tab = filmi_andmed[order(as.Date(filmi_andmed$`Release date(United States)`, format="%d.%m.%Y")),]%>%
mutate(`Release date(United States)`= as.Date(`Release date(United States)`, "%d.%m.%Y"))%>%
mutate(Profit= All_over-Budget)
Siis teen tabeli, mis on eelmine tabel, mis on grupeeritud aastate järgi ning milles olen eelarved, kogu teenistus ja ka kasum igale aastale kokku arvestanud.
aasta_tab = kuupv_tab%>%group_by(year=format(`Release date(United States)`, "%Y"))%>%
summarise(budget = sum(Budget)/1000000, kogu_tulu = sum(All_over)/1000000)%>%mutate(year = as.numeric(year), profit = (kogu_tulu-budget)/1000000)
Nüüd teeks mõned graafikud , millel näeme iga aasta kohta eelarvet, kogu tulu ja kasumit
p13 <-aasta_tab%>%ggplot(aes(x = year, y = budget))+geom_point()+geom_line()+geom_text(aes(label = year), size =3, vjust = -0.5)
p14 <-aasta_tab%>%ggplot(aes(x = year, y = kogu_tulu))+geom_point()+geom_line()+geom_text(aes(label = year), size =3, vjust = -0.5)
p15 <-aasta_tab%>%ggplot(aes(x = year, y = profit))+geom_point()+geom_line()+geom_text(aes(label = year), size =3, vjust = -0.5)
Tegin ka ühe shiny animatsiooni, millest saab vaadata, mis filmid mis aastatel olid ning mis olid nende filmide kasumid. Kahjuks ei ole igal aastal filmi, seega on mingite nihuti väärtuste korral graafik tühi.
Oma huvi pärast uurisin välja paketi ja käsu millega saab osalise vastega elemendid kogumikest välja otsida ning selle kasutamises/demonstreerimiseks otsisin välja kõik filmide seeriad ja lõpuks ka kõik need filmid mida on üks eksemplar
Iron_Man = filmi_andmed%>% filter(str_detect(Title, "Iron"))
Avengers = filmi_andmed%>% filter(str_detect(Title, "Avengers"))
Captain_America = filmi_andmed%>% filter(str_detect(Title, "America"))
Venom = filmi_andmed%>% filter(str_detect(Title, "Venom"))
X_Men = filmi_andmed%>% filter(str_detect(Title, "X-Men"))
Spider_Man = filmi_andmed%>% filter(str_detect(Title, "Spider-Man"))
Deadpool = filmi_andmed%>% filter(str_detect(Title, "Deadpool"))
Thor = filmi_andmed%>% filter(str_detect(Title, "Thor"))
Guardians = filmi_andmed%>% filter(str_detect(Title, "Guardians"))
Hulk = filmi_andmed%>% filter(str_detect(Title, "Hulk"))
Fantastic4 = filmi_andmed%>% filter(str_detect(Title, "Fantastic Four"))
Blade = filmi_andmed%>% filter(str_detect(Title, "Blade"))
Ghost_Rider = filmi_andmed%>% filter(str_detect(Title, "Ghost"))
Ant_Man = filmi_andmed%>% filter(str_detect(Title, "Ant-Man"))
Punisher = filmi_andmed%>% filter(str_detect(Title, "Punisher"))
Näiteks Iron Man filme on
print(Iron_Man)
## # A tibble: 3 × 9
## Title Distrib…¹ Release …² Budget Openi…³ North…⁴ Other…⁵ World…⁶ All_o…⁷
## <chr> <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Iron Man Paramoun… 2008-05-02 1.4e8 9.86e7 3.18e8 2.67e8 5.85e8 6.84e8
## 2 Iron Man 2 Paramoun… 2010-05-07 2 e8 1.28e8 3.12e8 3.12e8 6.24e8 7.52e8
## 3 Iron Man 3 Walt Dis… 2013-05-03 2 e8 1.74e8 4.09e8 8.06e8 1.21e9 1.39e9
## # … with abbreviated variable names ¹`Distributor(s)`,
## # ²`Release date(United States)`, ³`Opening weekend(North America)`,
## # ⁴`North America`, ⁵`Other territories`, ⁶Worldwide, ⁷All_over
Või Spider-Man filme
print(Spider_Man)
## # A tibble: 9 × 9
## Title Distr…¹ Release …² Budget Openi…³ North…⁴ Other…⁵ World…⁶ All_o…⁷
## <chr> <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Spider-Man Sony P… 2002-05-03 1.39e8 1.15e8 4.04e8 4.18e8 8.22e8 9.37e8
## 2 Spider-Man 2 Sony P… 2004-06-30 2 e8 8.82e7 3.74e8 4.15e8 7.89e8 8.77e8
## 3 Spider-Man 3 Sony P… 2007-05-04 2.58e8 1.51e8 3.37e8 5.54e8 8.91e8 1.04e9
## 4 The Amazing… Sony P… 2012-06-03 2.3 e8 6.20e7 2.62e8 4.96e8 7.58e8 8.20e8
## 5 The Amazing… Sony P… 2014-05-02 2.55e8 9.16e7 2.03e8 5.06e8 7.09e8 8.01e8
## 6 Spider-Man:… Sony P… 2017-07-07 1.75e8 1.17e8 3.34e8 5.46e8 8.80e8 9.97e8
## 7 Spider-Man:… Sony P… 2018-12-14 9 e7 3.54e7 1.90e8 1.85e8 3.76e8 4.11e8
## 8 Spider-Man:… Sony P… 2019-06-02 1.6 e8 9.26e7 3.91e8 7.41e8 1.13e9 1.22e9
## 9 Spider-Man:… Sony P… 2021-12-17 2 e8 2.60e8 7.80e8 1.07e9 1.85e9 2.11e9
## # … with abbreviated variable names ¹`Distributor(s)`,
## # ²`Release date(United States)`, ³`Opening weekend(North America)`,
## # ⁴`North America`, ⁵`Other territories`, ⁶Worldwide, ⁷All_over
Ning nende üksikute filmide leidmiseks ma paremat moodust ise ei leidnud, kindlasti on mõni parem variant ka.
f1 = filmi_andmed[!grepl("Iron", filmi_andmed$Title),]
f2 = f1[!grepl("Avengers", f1$Title),]
f3 = f2[!grepl("America", f2$Title),]
f4 = f3[!grepl("Venom", f3$Title),]
f5 = f4[!grepl("X-Men", f4$Title),]
f6 = f5[!grepl("Spider-Man", f5$Title),]
f7 = f6[!grepl("Deadpool", f6$Title),]
f8 = f7[!grepl("Thor", f7$Title),]
f9 = f8[!grepl("Guardians", f8$Title),]
f10 = f9[!grepl("Hulk", f9$Title),]
f11 = f10[!grepl("Fantastic Four", f10$Title),]
f12 = f11[!grepl("Blade", f11$Title),]
f13 = f12[!grepl("Ghost", f12$Title),]
f14 = f13[!grepl("Ant-Man", f13$Title),]
üksikud_filmid = f14[!grepl("Punisher", f14$Title),]
See on see üksikute filmide kogum
print(üksikud_filmid)
## # A tibble: 15 × 9
## Title Distr…¹ Release …² Budget Openi…³ North…⁴ Other…⁵ World…⁶ All_o…⁷
## <chr> <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Howard the… Univer… 1986-08-01 3.7 e7 5.07e6 1.63e7 2.17e7 3.80e7 4.30e7
## 2 Daredevil 20th C… 2003-02-14 7.8 e7 4.03e7 1.03e8 7.66e7 1.79e8 2.19e8
## 3 X2 20th C… 2003-05-02 1.1 e8 8.56e7 2.15e8 1.93e8 4.08e8 4.93e8
## 4 Elektra 20th C… 2005-01-14 4.3 e7 1.28e7 2.44e7 3.23e7 5.67e7 6.95e7
## 5 The Wolver… 20th C… 2013-07-26 1.2 e8 5.31e7 1.33e8 2.82e8 4.15e8 4.68e8
## 6 Big Hero 6 Walt D… 2014-11-07 1.65e8 5.62e7 2.23e8 4.35e8 6.58e8 7.14e8
## 7 Doctor Str… Walt D… 2016-11-04 1.65e8 8.51e7 2.33e8 4.45e8 6.78e8 7.63e8
## 8 Logan 20th C… 2017-03-03 9.7 e7 8.84e7 2.26e8 3.91e8 6.17e8 7.05e8
## 9 Black Pant… Walt D… 2018-02-16 2 e8 2.02e8 7.00e8 6.47e8 1.35e9 1.55e9
## 10 Captain Ma… Walt D… 2019-03-08 1.52e8 1.53e8 4.27e8 7.01e8 1.13e9 1.28e9
## 11 Dark Phoen… 20th C… 2019-06-07 2 e8 3.28e7 6.58e7 1.87e8 2.52e8 2.85e8
## 12 The New Mu… 20th C… 2020-08-28 6.7 e7 7.04e6 2.39e7 2.48e7 4.87e7 5.57e7
## 13 Black Widow Walt D… 2021-07-09 2 e8 8.04e7 1.84e8 1.96e8 3.80e8 4.60e8
## 14 Shang-Chi … Walt D… 2021-09-03 1.5 e8 7.54e7 2.25e8 2.08e8 4.32e8 5.08e8
## 15 Eternals Walt D… 2021-11-05 2 e8 8.50e7 1.65e8 2.37e8 4.02e8 4.87e8
## # … with abbreviated variable names ¹`Distributor(s)`,
## # ²`Release date(United States)`, ³`Opening weekend(North America)`,
## # ⁴`North America`, ⁵`Other territories`, ⁶Worldwide, ⁷All_over